#pragma once

#include"pgMat44.h"
#include"pgVec3.h"

class ICamera
{
public:

	virtual ~ICamera() {}

	virtual void SetFov(float fFov) = 0;
	virtual float GetFov() = 0;

	virtual void SetWorldTransformMatrix(pgMat44 world) = 0;
	virtual pgMat44 GetWorldTransformMatrix() = 0;
	virtual pgMat44 GetViewMatrix() = 0;
	virtual pgMat44 GetProjectionMatrix() = 0;

	virtual void SetLookAt(pgVec3 at) = 0;
	virtual pgVec3 GetLookAt() = 0;

	virtual pgVec3 GetPosition() = 0;
	virtual pgVec3 GetUpVector() = 0;

	virtual void SetAspectRatio(float fAspectRatio) = 0;
	virtual float GetAspectRatio() = 0;

	virtual void SetFarPlane(float fFarPlane) = 0;
	virtual float GetFarPlane() = 0;

	virtual void SetNearPlane(float fNearPlane) = 0;
	virtual float GetNearPlane() = 0;



};